package com.kobeliu.entity;

/**
 * leetcode No.9 回文数
 *
 * 你一个整数 x ，如果 x 是一个回文整数，返回 true ；否则，返回 false 。
 * 回文数是指正序（从左向右）和倒序（从右向左）读都是一样的整数。例如，121 是回文，而 123 不是。
 *
 */
public class Demo_13_No9 {

    public static void main(String[] args) {

        System.out.println(isPalindrome(112111));

    }

    /**
     * 新建一个值cur ， 从个位遍历位数 反写值，最后作比较
     * @param x
     * @return
     */
    private static boolean isPalindrome(int x) {
        if(x<0){
            return false;
        }
        int num = x;
        int cur = 0;

        while (num!=0){
            cur = cur*10 +num%10;
            num /= 10;
        }

        return cur == x;

    }

    /**
     * x转成数组 -- O(n) 头尾比较 得出true/false
     * @param x
     * @return
     */
    public static boolean isPalindrome1(int x) {
        if(x<0){
            return false;
        }
        if(x<10){
            return true;
        }
        //int型 转 String型
        String s = Integer.toString(x);
        int len = s.length();

        for (int i = 0; i < s.length()/2; i++) {
            if(s.charAt(i)!=s.charAt(len-1-i)){
                return false;
            }
        }
        return true;
    }
}
